
#ifndef GRAPHICS_MANAGER_HPP_
# define GRAPHICS_MANAGER_HPP_

# include <SFML/Graphics.hpp>

# include "AManager.hpp"
# include "Graphics/Configuration.hpp"

namespace	Graphics
{
	class	Manager: public AManager
	{
		public:
			Manager();
			Manager(Configuration const &);

			bool		create();
			bool		recreate();
			bool		close();

			void		setConfiguration(Graphics::Configuration const &);
			void		setColor(char unsigned, char unsigned, char unsigned);

			bool		isValid() throw();
			bool		isOpened() throw();

			void		display();
			void		clear();

			~Manager() throw();

		private:
			bool		_initialize();
			bool		_isValidConfiguration() throw();


		private:
			sf::RenderWindow		*_window;
			sf::Color				_color;

			Graphics::Configuration	_configuration;
	};
}

#endif // GRAPHICS_MANAGER_HPP_
